package Predicate;

import java.util.ArrayList;
import java.util.function.Predicate;

/*
练习：
String[]strArray={"姜恒星,50","姜恒,30","姜,5","郝万杰,44"};
字符串数组中有多条信息，请通过Predicate接口的拼装将符合要求的字符串筛选到集合ArrayList集
同时满足如下要求：姓名长度大于2；年龄大于33
 */
public class PredicateDemo03 {
    public static void main(String[] args) {
        String[] strArray = {"姜恒星,50", "姜恒,30", "姜,5", "郝万杰,44"};

        ArrayList<String> array = usestrArray(strArray, s -> s.split(",")[0].length() > 2
                , s -> Integer.parseInt(s.split(",")[1]) > 33);

        for (String str : array) {
            System.out.println(str);
        }
    }

    private static ArrayList<String> usestrArray(String[] strArray, Predicate<String> pre1, Predicate<String> pre2) {
        //定义一个集合
        ArrayList<String> array = new ArrayList<String>();

        //遍历数组
        for (String str : strArray) {//拿到了一开始的字符串
            if (pre1.and(pre2).test(str))//对字符串进行组合条件的判断
            {
                array.add(str);//将满足需求的传进去
            }
        }
        return array;
    }
}
